using System;
using System.IO;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Serverless.Cf;

namespace Example
{
    public class Hello
    {
        // public async Task<Stream> Handler0(Stream input)
        // {
        //     var str = "Hello world";
        //     byte[] bytetxt = Encoding.UTF8.GetBytes(str);

        //     // 控制台打印
        //     Console.WriteLine("Hello console: " + str);

        //     MemoryStream output = new MemoryStream();
        //     await input.CopyToAsync(output);
        //     output.Write(bytetxt, 0, bytetxt.Length);
        //     return output;
        // }

        public async Task<Stream> Handler(Stream input, ICfContext context)
        {
            var str = "Hello world";
            byte[] bytetxt = Encoding.UTF8.GetBytes(str);

            // 控制台打印
            Console.WriteLine("Hello console: " + str);
            // 日志打印
            context.Logger.LogInformation("Hello log: " + str);

            MemoryStream output = new MemoryStream();
            await input.CopyToAsync(output);
            output.Write(bytetxt, 0, bytetxt.Length);
            return output;
        }

        static void Main(string[] args) { }
    }
}